package com.itheima.exam.Exam1;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Test {
//    使用流：
//
//            1、统计三个字的省份的个数
//
//2、统计名字中包含方位名词的省份（东西南北）的个数
//
//3、打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
//
//4、将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新数组中
    public static void main(String[] args) {
        String[] provinces = {"河北省", "山西省", "吉林省", "辽宁省",
                "黑龙江省", "陕西省", "甘肃省", "青海省", "山东省", "福建省", "浙江省",
                "台湾省", "河南省", "湖北省", "湖南省", "江西省", "江苏省", "安徽省",
                "广东省", "海南省", "四川省", "贵州省", "云南省", "北京市", "天津市",
                "上海市", "重庆市", "内蒙古自治区", "新疆维吾尔自治区", "宁夏回族自治区",
                "广西壮族自治区", "西藏自治区", "香港特别行政区", "澳门特别行政区"};
        Stream<String> pro = Arrays.stream(provinces);
        //需求1：统计三个字的省份的个数
        List<String> collect = pro.filter(province -> province.length() == 3).collect(Collectors.toList());
        System.out.println(collect);
        System.out.println("--------------------------------");
        //需求2：统计名字中包含方位名词的省份（东西南北）的个数
        Stream<String> pro2 = Arrays.stream(provinces);
        pro2.filter(province -> province.contains("东") ||
                province.contains("南") ||
                province.contains("西") ||
                province.contains("北")).forEach(System.out::println);
        System.out.println("--------------------------------");
        //需求3：打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
        Stream<String> pro3 = Arrays.stream(provinces);
        pro3.filter(province -> province.contains("东") ||
                province.contains("南") ||
                province.contains("西") ||
                province.contains("北")).
                filter(province -> !province.contains("特别行政区")).
                filter(province -> !province.contains("自治区")).
                filter(province -> !province.contains("直辖市")).
                forEach(System.out::println);
        System.out.println("--------------------------------");
        //需求4：将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新数组中
        Stream<String> pro4 = Arrays.stream(provinces);
        List<String> collect1 = pro4.filter(province -> province.contains("特别行政区")||
                 province.contains("自治区")|| province.contains("直辖市")).
                collect(Collectors.toList());
        System.out.println(collect1);
    }
    }

